home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48_2 / fade_dm < prev    next >
Internet Message Format  |  1995-03-31  |  19KB

  1. From: Detlef Mueller <detlef@mwhh.hanse.de>
  2. Subject:  v04i011:  fade_dm - Amazing screen fader v1.1, Part01/01
  3. Newsgroups: comp.sources.hp48
  4. Keywords: HP48 PICT ADISP grob demo
  5. Organization: Nothin' is organized here.
  6. Followup-To: comp.sys.hp48
  7. Summary: Amazing
  8. Approved: spell@seq.uncwil.edu
  9.  
  10. Checksum: 4242299209 (verify with brik -cv)
  11. Submitted-by: Detlef Mueller <detlef@mwhh.hanse.de>
  12. Posting-number: Volume 4, Issue 11
  13. Archive-name: fade_dm/part01
  14.  
  15.  
  16. BEGIN_DOC fade_dm.doc
  17. Hi all.
  18.  
  19. A few days ago I found in a library a program to fade a fullsize-grob into
  20. the PICT. Really impressed I rewrote the code. Here's the result, a little
  21. directory filled with some programs:
  22.  
  23.     SETUP
  24.     ( --> )
  25.     Execute this program after the d/l.
  26.     Purges itself.
  27.  
  28.     RFU
  29.     ( --> )
  30.     Redundancy fighter unpacker.
  31.     Purged by SETUP.
  32.  
  33.     Show
  34.     ( --> )
  35.     A little demonstration program (user-RPL) to present FADE, FROW and
  36.     R2D2. It takes care about the PICT, if you interrupt the Show by
  37.     pressing [ON], you'll find your previous PICT grob in the last stack
  38.     level. To see the whole demo, only press a key if the program tells
  39.     you to do so.
  40.     Unpacked by SETUP.
  41.  
  42.     MAN
  43.     ( --> grob )
  44.     A grob used by Show.
  45.     Unpacked by SETUP.
  46.  
  47.     FROW
  48.     ( $text %row --> )
  49.     Fade ROW (sys-RPL). Feed it with a string in level 2 and a row number
  50.     in level 1 (1-7 if text display is active, 1-8 if PICT is active).
  51.     FROW fades the 1st 22 chars of the string into the active display
  52.     grob using the medium font. Row numbers > 8 wraps to 8, numbers < 1
  53.     wraps to 1. Trying to write row 8 in the text grob may be an error
  54.     condition (normally the text grob is only 56 lines hight).
  55.     Calls FADE.
  56.  
  57.     FADE
  58.     ( grob %flag --> )
  59.     Copy grob starting at the upper line into the active display grob
  60.     (text screen or PICT), using an amazing fading algorithm. If %flag
  61.     <> 0, every step a nibble is copied ('fast' mode). X-size of grob
  62.     <> X-size of display grob or Y-size of grob > Y-size of display grob
  63.     are error conditions.
  64.     Examine the source of FROW and Show to get some usage examples.
  65.  
  66.     R2D2
  67.     ( %n --> )
  68.     The 'Starwars' R2D2 captured in your handheld ... (saw the films
  69.     again yesterday :-). Try 5 R2D2.
  70.  
  71.     ITYPES
  72.     ( --> )
  73.     This is a program very similar to the OBJVIEW (shows an object type
  74.     reminder grob) posted by Stephen J Thomas a few days ago. When
  75.     starting with sys-RPL, I never remember the type values needed for
  76.     CKx&Dispatch/CK&DISPATCHx so I made myself a little program that
  77.     shows me all the internal types. The version I offer here contains a
  78.     modified kernel of FADE (only fade with speed 1) to run standalone.
  79.  
  80. Credits:
  81.     - RFU is a creation from Lutz Vieweg.
  82.     - I found the original version of the fade program in a library named
  83.       FACE, ID 1307. I neither know who has made it, nor if it ever was
  84.       shown up as an article in a newsgroup (I only own the nacked copy of
  85.       the lib in binary form). Anyway, thanks for the impressive program
  86.       (even it was buggy).
  87.  
  88. Have fun,
  89.     8-Detlef
  90. END_DOC
  91.  
  92.     Sources
  93.     =======
  94.  
  95. FROW - Use RPL:2.1 (with installed ref. table) to compile it.
  96.  
  97. BEGIN_SRC frow_dm.s
  98. %%HP: T(3)A(R)F(.);
  99. "(FROW,ob % \-> )
  100. ::
  101.  CK2NOLASTWD
  102.  DUPTYPEREAL?
  103.  NcaseTYPEERR
  104.  %1- COERCE
  105.  SEVEN #MIN
  106.  SWAP
  107.  DUPTYPECSTR? ?SKIP
  108.   DECOMP$
  109.  COERCE$22
  110.  DUPLEN$ TWENTYTWO
  111.  SWAP#- Blank$ &$
  112.  $>GROB SWAP
  113.  HARDBUFF TOTEMPOB
  114.  UNROT 3PICK SWAP #8*
  115.  PTR 12B6C OVER #8+
  116.  #< caseSIZEERR
  117.  ZEROSWAP GROB!
  118.  %1 ID FADE
  119. ;"
  120. END_SRC
  121.  
  122. R2D2 - Use RPL:2.1 (with installed ref. table) to compile it.
  123.  
  124. BEGIN_SRC r2d2_dm.s
  125. %%HP: T(3)A(R)F(.);
  126. "(R2D2: % \-> )
  127. ::
  128.  CK1NOLASTWD
  129.  DUPTYPEREAL?
  130.  NcaseTYPEERR
  131.  FIFTYSIX TestSysFlag
  132.  DUP IT
  133.  ::
  134.   FIFTYSIX ClrSysFlag
  135.  ;
  136.  SWAP COERCE
  137.  ZERO_DO
  138.   %RAN %100 %*
  139.   COERCE #1+
  140.   %RAN
  141.   # BB8 UNCOERCE %*
  142.   COERCE # 3E8 #+
  143.   setbeep
  144.   ?ATTNQUIT
  145.  LOOP
  146.  IT
  147.  ::
  148.   FIFTYSIX SetSysFlag
  149.  ;
  150. ; "
  151. END_SRC
  152.  
  153. FADE - Use the sys-RPL toolkit from HP (TOOLS.EXE) to compile it:
  154.  
  155. BEGIN_SRC fade_dm.s
  156. ASSEMBLE
  157. HARDBUFF_y    EQU    #12B6C
  158. HARDBUFF_x    EQU    #12B58
  159. RPL
  160.  
  161. ::
  162.     CK2NOLASTWD
  163.     CK&DISPATCH1
  164.     # C1                ( --> grob %flag )
  165.     ::
  166.     %ABSCOERCE            ( --> grob # )
  167.     OVER GROBDIM            ( --> grob # #y #x )
  168.     HARDBUFF_x #<> SWAP        ( --> grob # f #y )
  169.     HARDBUFF_y #> OR        ( --> grob # f )
  170.     caseSIZEERR
  171.  
  172.     OVER LENHXS TEN #-SWAP        ( --> grob #len # )
  173.  
  174.     CODE                ( grob #len #f --> )
  175. * CPU            A    B    C    D    D0    D1    Rx
  176.     GOSBVL    =POP#    f
  177.     D=0    S                [S]:0
  178.     ?A=0    A
  179.     GOYES    IsSlow
  180.     D=D+1    S                [S]:1
  181.  
  182. IsSlow     GOSBVL    =POP#    len
  183.     R1=A                                1:len
  184.     GOSBVL    =PopASavptr &grob
  185.  
  186.     A=A+CON    A,10    skip p/l
  187.     A=A+CON    A,10    skip y/x
  188.     R2=A                                2:&src
  189.  
  190.     D1=(5)    =VDISP                        &&disp
  191.     C=DAT1    A            &disp
  192.     C=C+CON    A,10            skip p/l
  193.     C=C+CON    A,10            skip y/x
  194.     R0=C                                0:&dst
  195.     LC(5)    #03FFF            #03FFF
  196.     ?D=0    S
  197.     GOYES    SlowMsk
  198.     LC(4)    #0FFF            #00FFF
  199.  
  200. SlowMsk    D=C    A                mask
  201.     C=0    A            0
  202.     R3=C                                3:0
  203.     R4=C                                4:0
  204.     LC(2)    #01            #01
  205.     ?D=0    S
  206.     GOYES    SlowBit
  207.     LC(1)    #F            #0F
  208.  
  209. SlowBit    B=C    B        bitMask
  210.     C=0    A
  211.     GOSUB    CopyBit
  212.  
  213. FadeLp    C=R4.F    A            offs
  214.     A=C    A    offs
  215.     C=C+C    A
  216.     C=C+C    A
  217.     C=C+A    A
  218.     C=C+CON    A,3
  219.     C=C&D    A            ((offs*5)+3) & mask
  220.     R4=C.F    A                            4:offs'
  221.     R3=C.F    A                            3:offs'
  222.     ?D#0    S
  223.     GOYES    NoShft
  224.  
  225.     CSRB.F    A
  226.     CSRB.F    A            offs'/4
  227.     R3=C.F    A                            3:offs'/4
  228.     SB=0
  229.     BSRB.F    B        bitMask>>1
  230.     ?SB=0            *** Shifted out ?
  231.     GOYES    NoShft
  232.  
  233.     LC(2)    #08
  234.     B=C    B
  235.  
  236. NoShft    C=R3.F    A            offs'
  237.     A=R1.F    A    len
  238.     ?C>=A    A
  239.     GOYES    OutOR
  240.     GOSUB    CopyBit
  241.  
  242. OutOR    A=R4.F    A    offs
  243.     ?A#0    A
  244.     GOYES    FadeLp
  245.  
  246.     GOVLNG    =GETPTRLOOP
  247.  
  248. * CPU            xxx    bitMask    offs            xxx
  249. *    R0:&dst
  250. *    R2:&src
  251.  
  252. CopyBit    RSTK=C                                r:offs
  253.     A=R2.F    A    &src
  254.     C=C+A    A            &from
  255.     D1=C                            &from
  256.     A=DAT1    B    byte
  257.     A=A&B    B        *** Mask bit(s) from src
  258.     C=RSTK                offs
  259.     D1=A                            dta
  260.     A=R0.F    A    &dst
  261.     A=A+C    A    &to
  262.     AD1EX        dta                    &to
  263.     C=DAT1    B        *** Get destination byte
  264.     B=-B-1    B        ~bitMask
  265.     C=C&B    B        *** Mask bit(s) in dst
  266.     C=C!A    B        *** Or in bit(s) from src
  267.     B=-B-1    B        ~bitMask
  268.     DAT1=C    B        *** Write new byte
  269.  
  270.     RTN
  271.  
  272.     ENDCODE
  273.     ;
  274. ;
  275. END_SRC
  276.  
  277. BEGIN_ASC fade.asc
  278. %%HP: T(3)A(D)F(.);
  279. "69A20FF7A5A10000006094459505543560C2A20D5500256427D8004ED9D2051A
  280. 81536217566079E60C8142FE971585B21E4D3032230C6B2138D3057B30B49168
  281. 813061650350400ED30CCD201D0008F146601018FC1523818F09508C1021FB55
  282. 07147818F2C804172910834FFF00D7D210B30FAE5D27F3081AF1BDAC6C6C203C
  283. A20EF781AF0BE82D18BA60721B8F238ACAC8D34150062297112C213514B0E600
  284. 713186410CA13314FBED0E650E6ABED14D01B2130E1B20F770083000380F100F
  285. 059785D380FA2100773766029A02D5114D01A5511105BA0A444263487372207F
  286. 406C92BED1514405D40A4845213485733059402D99480F7CFF3EFD10048FC420
  287. 117BF02EF8EC1302D2000C8600003CDC18B3220077C4A334DE500028A0008024
  288. 510A088005145921258E090EAD418B1440073CC80D4E450A8807495A3C522004
  289. 1459C329450EE1255D18BBC8271C4A6EF5A83400E8098081E4C18A3C22027443
  290. F14D2010888AD0824A208A0288051445534BD800488BA0824EA18B1244073443
  291. 121A400288A81269C502280A761701028BA80814AC10A0C85C9C583852025785
  292. 0E312983A2578B3263037C5D12AC4401A8210080A652883C2C90D2E4888872A1
  293. AE528B1222033C8891A21440C1F7A52D2016E811E08038FE8E2528B0E63031C5
  294. D15EFE70E0907093A2A10B3CA606705FE4410A8A808A0A2A934722AA011441F1
  295. A17830E8B868A142A18B12E6013C8CD11105088A84E0A1A78B0578CDC30E8A37
  296. 090AEA18B0CAA06F7F2D905C6040B2389341008B3CE60379A85440A88A0090E3
  297. 000787855E4E440E0190091410009184F5E287440A02978018822D1684C60A81
  298. 138B0E13280E0F1BC5F078D068A238B366E08B32A1077C55126F1880A8AA00A0
  299. AAA08A02A2011448CC67C81683118B18437C712A1032B340A22880AA210C02FE
  300. CE144A18B3435B0EA1071C512F02870BC0C04810C2C230E8F6056F14859E04B2
  301. 130027500402523442340D9D202BA819612664B36A8B464873588130CB916D9D
  302. 20A8B4616735B213032230AEC813C3702CFA21F514CB9A2AEC81FED302CFA211
  303. 9208BB00FBD81CB9A2AEC81119208E300CBD302B141E342443370CB916D9D20A
  304. 8B4613735B2130B2130AC000406414445440D9D20D8A812BF81119201C000D9D
  305. 207DC812C2308750585B21E4D3032230C6B2138D3057B3050B362C2306165035
  306. 04021E26CCD20F21008F14660AC38A850B478F146601018FC1523818F09818F0
  307. 91021FB5507147818F29818F2910834FFF3094B8033FFF0D7D210B10C311094B
  308. 5030FAE5D2747081AF1CDAC6C6C2818F220EF781AF0C81AF0B94F62819F2819F
  309. 281AF0B82281961832903180AE581AF1B81AF118BA60721081AF148AC598D341
  310. 500681AF12C213514B0E600713181AF10CA13314FBED0E650E6ABED14D01B213
  311. 0B2130EA100406425F47540D9D20D8A819612664B3667205AEC8153040AB4263
  312. 223045126A217031B5107721BB726BC04049726676543915000D113223053621
  313. 75660CAF06EF1163223047626C6B212C230AB5264EC3050B36A3E26976119C2A
  314. 284E204064144454B2130AC00030D414E430C2A20FB7002564249800182CE1B2
  315. 0F880004000380000EFF308F70C789FBF615E08FF3000CFF7008FF73485E7850
  316. 8F033F11C0440E680C30E78DD19ED1248117CC04FFD83AE86841E24036740F10
  317. F3C1B23B609CDEF08F3C55B2B6C80349005A8A0CF1C9A57A016828300F30F1F4
  318. 75919086CF00124CF00F3870EF10F81FF2B08847710F1E1FF008F8497678F10E
  319. 034034F830F87C3038F7CFD821248F092E70F48F28BFF1C0793D416C1012FD7E
  320. 02D7C00066272F0E708FF01CE83D07C3C91876F02F0CF108464F137EF831BFFF
  321. FEEF35573E30F36B443321CFCC5CA12D6087943CF0893016F8F4DEFF36CF81CA
  322. 5760EF3E38F38CB70F09FF3104EBE7AF5E300F0F0F748C32FEC4FD1000A300D2
  323. D8F1DE603EE1912EB10000F4898D14882496CFC04A1CCAF38800C9F838F55797
  324. C4834423C2F121843108F287E8300D0F10CFF7074DFB000EF08208FEB4943D8A
  325. 1E3343EF4CE3008FF38100F126A48B953C7129E138300AFF7870C4F1AF78553E
  326. 8096CCBC5F2FF830C004DF774CE03F444323839F100FB115B98DFF14E898CC00
  327. 707B7842F106273FFF85ED99C134ADE8B1007CFFF007484FFFB14C839124A745
  328. E7007879C598F7EFFD639DDB8806D7F95200070FF300320BFF3079162D0CFF30
  329. F75F300E04F008E6878070751CAE01CF0F27600E10000CEEF0016662255E0E84
  330. 0691831700030000F9872C0C0EAE1370EFF100059442600E5A10B06A517E618C
  331. B7E7AB7000CF0477838BF600A41E942032000FFBED1CF9EF3351FF960B1FCBB9
  332. 70F88A77B40C00537CA1EF44C4E0B52A34403207084A34C18C1293006BF8F76A
  333. 3B30FF7078F1EE46C388C8300B83E06691946D3211CF98386E836E8F0C3E4064
  334. 654F1173001FF778D66C93E0FFF56CAF4399E08F080F256E83E1CF74F5C8A0E7
  335. 8397074CB45C83E300032D274881BD004210033CF71988C97C700FD284018E42
  336. 7868701D63E18EC8CA3F0FFF1E3CA11785368FF00062F006E0F5EC307A84BF79
  337. 9E010DC0F02A7478F714D432E781B10F7B4006BC8F7000046E7C1B55DC3837CC
  338. 1E7A6F916E81F1855E00E85D68F91D4F8D3A2BA80C8F300051460F324FFDD06C
  339. F6443ADA8C0D4403046E76CFF5CED30109765A9E8008BD8F1000F856E3060AE8
  340. 7697E98321AB272EC8406D73CC4E00081BA7D5FEAA72F3C004ACF0000F7A460F
  341. F7EF3561FE4DFD1C5808709AF3E768FFFDFC29385418700CF0F5E784B71A66C7
  342. 00EFBC81F3D811FF38FF193E5A20FFB47E100004555844B3CFFFF00D8150FFA3
  343. 7E00FFF1020C0448CD648FB1250F3AE5E0EFFFF6CF34A2FDF21CF82890F7C456
  344. E250CF30CE58E41AEA248BCA27916873C900078C30B2CF488A40FF5F96273923
  345. EF701F20588A70F741A2C77A8040C2308BA2A701EC700403586F67740C2A2071
  346. 700256426B8008FD9D20E1632634E104B02275E178BF1984EDCC0247A20E4A20
  347. 510C000E0910EB21300F2E11C432D6E2010169B8DC2A2072000020C975275637
  348. 370216E69702B6569752072E99B8C54E6A6FEC440283D2445647C656667B20F2
  349. 00016C6C677169BA91775115C36F6D65602A3D292E6498D94A97F65702C696BE
  350. 87D8236275646964B3A12757658DA46D55375602478C4EE0727F6762716D6640
  351. 7CA307F0E9464656D6F6E63747164794310322A0216D616A796E676023719DB5
  352. 6E602661646562F23C9792E7540FEE847F2D1F9C2A2C53A20A132D6E20108724
  353. 021184E20406425F475C42324B2A2F17A18DBF1592C139412C06144454E6CE12
  354. C6F6F6B602164702C444F1EA81D65790139CB3EC56477237024716B4444166C2
  355. 55000031E0B76B48084EE50416E63697C2568602F3D45762E6F677C29681A48D
  356. F9A0727F6762716DCACC46758675DB2897F657021627560237565696E67E43C7
  357. 7A76020284566070972514AEE29C2A2C53A20A132D6E20108748F484E204083F
  358. 6C42323F2A2F17A1324B4130D414E45BF2991444543A4C160183530118345E40
  359. 2023706782460203F1420F2EBB72A94023616C6C602D6440277964786EB41FF5
  360. 24F4B6C25635C8369B94E970266F6270297F657C41E540B80D45F6F602661637
  361. 4702F3217335758616470247865602865735FF102F33F2A2743A20A132D6E201
  362. 087800D84E20406425F475C4232A9A4F17A174D630D414E44B2A25A5EEEB2647
  363. 23425234423B58816020C075213000206BBF944595055435020727F6762716D6
  364. F1A16E56E646C202C65647723153616B826F311602C6F6F6B68550D200002027
  365. 556C6C6C236F6D696E6760247F021B3A865918450000C403BEE009C020266163
  366. 74702265666F6275602B3D292C782FEB314F6417716491602698AD364716C602
  367. 37FB9D5E82DE45667562702328740730840543839C2A2743A20A132D6E201087
  368. 24E384E20406425F475C42323F2A2F17A1461D411657B28914445478048A6094
  369. 4595055435EF5323CE22606E178BF18B9C176BA1E4A205100340301B279E1AFE
  370. 22D9D208DBF1634E1EFE02B21305BF1D81E8DCCC065DF22C2A20F2250E014656
  371. 47C6566604D6778686E28616E63756E1919897C2428030A3249756C754950000
  372. 482C789056046C696476DE42F08D6F6E6C1CD084F607560297F6570256E6A6F6
  373. 975646024786563F2A2743A20A132D6E20108780080984E20406425F475C4232
  374. ED2A24A5A193632B21302827003025645530D9D202BA81CCD20562008FB97608
  375. FE31608F2D76014713514334C2A208A66217414334F00008B241174143342564
  376. 28A2606CF11748F60860143174E256068D1818FA945F13706D6068F8DA601F97
  377. 5071471351361451350781AF0A0781AF0B741084A8F2D760142164808C81AF1B
  378. 134AB3A2F53132007AA714EAE7161A6746063903140791196C6531507C01968D
  379. 031F1A6A6F3031E514A1590160170A6E5FE81AF1234F5000EA4118A80081AF02
  380. 658F6EF0AE8A6D14E15D0160170A6D5FE81AF1AE24AD8AA0081AF0A312079809
  381. 6C0131407C7081860781860381AF003170726013681AF0B81A618AE5E4137135
  382. E2134A6D14E15D0160170A6D5FE81AF1A81AF10E24A18AA0081AF0A81AF1B134
  383. 65CE6E30AE5D0A64A2F53132007AA714EAE7161A67550B64A6D59D0134BBF406
  384. A00347AC810684A8F2D76001B21303820050355445550550D9D20C2A20981002
  385. 56421C100280ED9D20E1632C2A20F20003556474796E67602570702478656024
  386. 656D6F6F1A09C2A2485A1C943243CC269100055E6071636B6681392CF1B0BC17
  387. 6BA1ED61401178BF104B0284E2030256455DBBF1DCC0293632B21304563D29C4
  388. 03586F677976327C5EB3A1540430D414E496504C6094459505543589D5408937
  389. 63D400045F60237565602478049F1C656D6F6C202869647A08B4A725E3D7202B
  390. 65697F19C6C3547A205006503554455505F08E7F86EFE02ED2A2F17A19363264
  391. 00E84E2030256455EB3A1B213076EF"
  392. END_ASC
  393.  
  394. The FADE directory in uuencoded form, chksum/bytes #FE67h/3597
  395.  
  396. BYTES: #FE67h 3605.5
  397.  
  398. BEGIN_UU fade_dm.uue
  399. begin 644 fade.dir
  400. M2%!(4#0X+466*O!_6AH````&25194$53!BPJT%4`4D9RC0#DG2U0H1@U)G%E&
  401. M!I=NP!@D[WE16"OAU`,C,L"V$H,]4+<#2QF&&`,65C`%!.`]P-P"T0"`'V0&I
  402. M`8'/43(8^)`%R`$2OU5P08>!+XQ`<9(!./3_`'TM`3OPZM5R/X"A']O*QL8"`
  403. MPRK@?QCZL([2@:L&)['X,JBLC#T4!6`B>1'"$E-!"VX`%Q-H%,`:,T&_WN!6K
  404. MX*;K'=00*S'@L0)_!X`#`(/P`?!0>5@]"*\2`'=S9B"I(%T1U!!:%1%0JZ!$%
  405. M)#:$-R<"]P3&*>L=%4103:"$5!)#6#<#E032F83PQ__CWP%`^$P"$;</XH_.)
  406. M,2`M`,!H``##S8$[(@!W3#I#[04`@@H`"$(5H(`(4$&5$E+HD.#:%+A!!'##R
  407. MC-#D5*"(<)2EPR4"0$&5/))4X!Y2U8&[C'+!I.9?BD,`CI`(&$X<J,,B($<TS
  408. M']0"`8BH#2BD`J@@B%!!5#6TC0"$N`HHY!JX(41P0S0AH00@B(HAEEP@@J!G3
  409. M<1`@N(J`0<H!"HS%R86#)2!U6.`3DC@J=;@C-C#'U2'*1!"*$@`(:B6(P\().
  410. M+4Z(B"<:ZB6X(2(PPX@9*D$$'']:T@)ACA$."(/OZ%*""VX#$UP=Y>\'#@D'[
  411. M.2H:L,-J8`?U3A2@J`BHH*(Y="*J$$$4'QJ'`XZ+AAHD&K@A;A##R!T14("HC
  412. M2`X:>KA0A]P\X*ASD*"N@0NL"O;WT@G%!@0K@SD4`+C#;C"7BD4$BJ@`"3X`O
  413. M<'A8Y>1$X!`)D$$!`!E(7RYX1*`@>0B!*-)A2&R@&#&XX#&"X/"Q7`^'#88J3
  414. M@SMF#K@C&G#'52'V@0B*J@`*J@JH("H0083,=HQA.!&X@33'%Z(!(SL$*H((M
  415. MJA+`(._L0:2!.S2UX!IPP17R('BP#`R$`2PL`XYO4/9!6.E`*S$`<@5`("5#:
  416. M)$/0V0*RBI$68D8[IKADA#>%&`.\&=;9`HI+%G93*S$P(@/JC#$\!\*O$E]!R
  417. MO*FBSACO/2#\*A$I@+L`OXW!FRKJC!&1`N@#P-L#LD'A0T(T<\";89TMH+ADQ
  418. M,3>U$@,K,:`,``1&041%!)TMT*@8LH\1D0+!`-#9`M>,(2P#>`6%M1)./3`BQ
  419. M`VPK,=@#=3M0L&/",F!A!5-`(.%BS"WP$@#X06:@/*A8L'3X0680$/@<)8.!Y
  420. M#XF!#QD@\5L%%W08^)(8^)(!./3_`TF+,//_T-<2L`$\$9"T!0.O7BU'!QCZT
  421. MP:UL;"P8^"+@?QCZP!CZL$EO@I$O&/F"H0^+(AAI@2,)$PCJA:$?BZ$?@:L&X
  422. M)P$8^D&H7(D]%`5@&/HA+#$5M.`&<#&!H1_`&C-!O][@5N"FZQW4$"LQL!(#]
  423. MK@%`8"3U=$70V0*-BI$68D8[9B=0ZHQ1`P2Z)#8B`U0AIA('$UL!=Q*[)[8,Y
  424. M!)0G9F=%DU$`T!$C,E!C$E=FP/I@_A$V(@-T)L:V$L(RH%MBY#Q0L&,Z+I9G[
  425. M$<FB@N0"!$9!1$4K,:`,``--04X#+"KP>P!21D*)`('"'BOPB`!``#`(`.#_.
  426. M`_@'?)B_;U$.^#\`P/\'@/\WA.6'!?@P\Q$,1."&P`-^V!WI'4(8<<Q`_XVC8
  427. MCH84+@1C1_`!/QPKLP;)[0_XPU4K:XPPE`"EJ,`?G%JG$(:"`_`#'T]7&0EH4
  428. M_``AQ`_P@P?^`8_Q+PN(=!?PX?$/@(^49X<?X#`$0X\#C\<#@W_\C1)"^)#B$
  429. M!T_X@OL?#)?3%,8!(=_G('T,`&9R\N`'^`_!CM-P/)R!9P_RP!^`9/0QYX\3R
  430. M^__O_E-UXP,_MD0S$OS,Q1K2!GA)PP^8`V&/3^W_8_P8K'4&_N.#/\A[\)#_Z
  431. M$T"^?OKE`_#P\$?((^],WP$`.@`MC1_M!N,>&>(;``!/F-A!B$)I_`RDP:P_/
  432. MB`"<CX-?=7E,.$0R+!\22!.`+WB.`]#P`?Q_<-2_`.`/*(#O2TG3J.$S-/[$1
  433. M/@#X/Q@`'V)*N%G#%Y(>@P.@_X<'3!_ZAU7C"&G,R_7RCP,,0/UWQ`[S1#0RP
  434. M./D!\!M1F]C_08Z)S``'MX<D'V!R\_]8WID<0]J.&P#'_P]PA/3_&\0X&4)ZV
  435. M5'X`AY=<B7_^WS;9O8A@?9\E`'#P/P`CL/\#EV'2P/\#?_4#X$`/@&YX"`=7Q
  436. MP>H0_/!R!N`!`,#N#Q!F)E+EX$A@&3AQ`#```)]XPL#@ZC$'_A\`4$DD!N"E/
  437. M`0NF%><6R'M^N@<`_$!W.+AO`$KA20(C`/"_WL&?_C,5_VFP\;R;!X^H=TO`Q
  438. M`#7'&OY$3`Y;HD,$(W"`I$,<R"$Y`+:/?Z:S`_\'AQ_N9#R(C`.P.`YF&4G6S
  439. M(Q'\B8/F..;XP.,$1E;T$3<`\7^';<8Y#O]?QOHTF0[X@/!2YC@>_$=?C`I^8
  440. M.'EPQ$O%.#X`,-)RA!C;`"0!,,-_D8B<QP?P+4@0Z"2'A@?1-A[HC*SS\/_A5
  441. MPQIQ6&/X#P`F#V`.7\X#ITC[E^D0T`P/HD>'?T%-(WX8&_"W!&#+^`<`0.;'C
  442. ML57-@W/,X:?V&>88'UCE`([5AI_1]-BCLHK`^`,`%63P(_3?#<9O1*.MR-!$X
  443. M,$#F9_Q?[#T0D&>EZ0B`V_@!`(]E/F"@CF=YGC@2NG+BC`36-\SD`("Q>EWO`
  444. MJB<_#$#*#P#PIV3P?_Y3%N_4W\&%@`>I/WZ&_]_/DH-%@0?`#U]^2'NA9GP`@
  445. M_LL8/XT1_X/_D>.E`O]+YP$`0%6%1#O\_P_0&`7_.N<`_Q\@P$"$W$;X&U+P$
  446. MHUX._O]O_$,JWR_!CX()?TQE+@7\`^R%3J&N0KBL<AF&-YP`<,@#*_R$J`3_&
  447. M]6ERDS+^!_$"A:@'?Q0J?*<(!"P#N"IZ$,X'0#"%]G9'P*("%P<@922V"(#?3
  448. MV0(>-F)#'D`+(E<>A_N12-[,('0JX*0"%<``X)`!OA(#\.(13"-M+A`0EHO-?
  449. MH@(G```"G%=R97-S(&%N>2!K97DE<.*9BUSDIO;.1"`X+41E=&QE9K<"+P`0\
  450. MQL9V%Y:K&7<543SVUE8&HM.2XD:)G:1Y;W4@;&GK>(TR)E=&ED8[&G)U5MA*.
  451. MUE5S92!TR.0.)_=V)A?69@3'.G`/GF1D96UO;G-T871)$S`B"A+6%J:7YG8&-
  452. M,A?96^8&8A9&5B8OPWDI?D7P[DCWTO')HL(U*J`QTN8"`7A"(!%(+D!@)/5T*
  453. MQ20CM*+R<1K8^U$I'),4PF!!1$5N["%L;V]K(&%T($Q$'ZX8;74),<D[SF5T2
  454. M)W,@=&%+1!1F+%4``!,.>[:$@.1>0&%N8WDL96@@/TUU)FYO=RQI&$K8GPHGR
  455. M]W8F%]:LS&17:%>]@GEO=2!A<F4@<V5E:6[G-'RG9R`@2&4&!WE20>HNR:+"K
  456. M-2J@,=+F`@%XA$](+D"`\\8D(_.B\G$:([04`TU!3K4OF4%$1:/$81`X-1"!\
  457. M0^4$`C('=BAD(#`?)/#BNR>:!#(6QL8&TD8$<I=&A^9+\5]"3VLL95.,8[E)1
  458. MG@=B]B8'DO=6QQ1>!(O05&]O(&9A<W0@/Q(W4U=H870@=&AE(&AU4_\!\C,O8
  459. M*D>C`AHC;2X0@(<`C>0"!$923U=,,J*I]'$:1VT#34%.M*)26NZ^8G0R)"5#]
  460. M)+.%&`8"#%<2`P`"MOM)5%E015,@<')O9W)A;1\:YF5N9"P@;&5T)Q,U%K8H;
  461. M]A-A(&QO;VM8!2T```)R5<;&QC+VUI;F=@9"]R"QHVB5@50``$PPZPZ0#`)BR
  462. M%C9'!R)69O8F5P:RTY+"A_*^$_1&<1=&&09BB=IC=&%L('._V>4H[51F5R8'&
  463. M,H)'<`-(4#0XR:)R-"J@,=+F`@%X0CY(+D!@)/5TQ20C\Z+R<1IDT11A=2N8?
  464. M041%AT"H!DE465!%4_XU,NPB!N9QN!^XR7&V&DXJ4`$P!`.Q<NFA[R*=+8"]2
  465. M'S;DX>\@*S%0^]$8CLW,8-4OPJ("+U+@$&1E=&QE9D!M=VAH+FAA;G-E'AF);
  466. M>2PD"`,Z0GEE?$59``"$PH<)94#&ED9G[20/V/;FQL$-2&]P92!Y;W4@96YJ"
  467. M;WEE9"!T:&7SHG(T*J`QTN8"`7@(@)!(+D!@)/5TQ20CWJ)"6AHY-K(2`X)RC
  468. M``-21E4#G2T@JQC,+5`F`/B;9X#O$P;XTF<0=#$5-$,L*H!J)G$4-$,/`(`KK
  469. M%'$4-$-21H(J!L8?<81O@`9!$T<N96#8@8&O2?4Q!]8&AH^M!O%Y!1=T,15CV
  470. M0153<!CZH'`8^K!'`4B*+WT&01)&",@8^K$QI#LJ7Q,C`*=Z0:Y^8:%V9&"3G
  471. M,$%P&9'&5A,%QQ!IV##QH:;V`Q->01J5$`9QH.;UCJ$?,O0%`*X4@8H`&/H@G
  472. M5OCF#^JHUD$>U1`&<:#6]8ZA'^I"VJ@*@*$/.B%PB9#&$!,$QP<8:'`8:#`8>
  473. M^@`3!R<&,8:A#XNA%JA>3C$74RXQI-9!'M40!G&@UO6.H1^*H1_@0AJH"H"A$
  474. M#XJA'QM#5NSF`^K5H$8J7Q,C`*=Z0:Y^8:%V5;!&:EW9$$.[3V`*,'3*&&!(+
  475. MBB]]!A`K,3`H``5315154`6=+<"B`HD!(&4DP0$@"-[9`AXVPJ("+P`P549'9
  476. ME^9V!E('!T*'5@9"5M;V]J&0+"J$I<%)(S3,8AD`4.4&%S:V9AB3PA\+RW&V"
  477. M&MX6!!&'^P&T($@N,"!E5-6['\T,DF,C*S%`9=.23#"%]G:79R/'Y3L:14`#:
  478. M34%.:07$!DE465!%4YA=!)AS-DT`0/4&,E=6!D*'0/G!5M;VQ@*"ED:G@$MZ[
  479. M4CY]`K)6EO>1;#Q%IP(%8`5315154`_H]VC^#N(M*A^GD6,C1@".Y`(#4D959
  480. %OJ.Q$@.Q[
  481. ``
  482. end
  483. END_UU
  484.  
  485. -- 
  486. +-----------------------------------+---------------------------------------+
  487. |      `What a depressingly         |             Detlef Mueller            |
  488. |         stupid machine`           |          detlef@mwhh.hanse.de         |
  489. |             Marvin                |...!uunet!mcsun!unido!mcshh!mwhh!detlef|
  490. +-----------------------------------+---------------------------------------+
  491.